package com.rj.ability.leqi.adapter.domain.aisino;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

/**
 * 数电票上传响应
 *
 * @author YFX_RANLUBO
 * @date 2024/04/30 15:42
 **/
@Data
public class AisinoQdfpscRes {
    /**
     * 发票号码  varchar  20  是
     */
    @JsonProperty("invoiceNo")
    private String fphm;
    /**
     * 开票日期  datetime  是格式：YYYYMMDDHHMMSS
     */
    @JsonProperty("issueDate")
    private String kprq;
    /**
     * 入库日期 YYYYMMDDHHMMSS
     */
    private String createTime;
    /**
     * 特定要素  varchar  2  否  空：非特定要素
     * aisino:“00”非特定要素
     */
    @JsonProperty("specialInvoiceMark")
    private String tdys;
    /**
     * 出口业务适用政策代码varchar  2  否  00|空：非出口业务01：退税政策02：免税政策03：征税政策
     */
    @JsonProperty("exportPoliciesCode")
    private String ckywsyzcDm;
    /**
     * 增值税即征即退代码varchar  2  否
     * 00|空：非增值税即征即退01：软件产品发票02：资源综合利用产品发票03：管道运输服务发票
     * 04：有形动产融资租赁服务05：有形动产融资性售后回租服务发票06：新型墙体材料发票
     * 07：风力发电产品发票08：光伏发电89产品发票09：动漫软件产品发票
     * 10：飞机维修劳务发票11：黄金发票12：铂金发票
     */
    @JsonProperty("immediateVATRefundCode")
    private String zzsjzjtDm;
    /**
     * 差额征税类型代码varchar  2  否空：非差额发票 01：全额开票 02：差额开票
     * aisino:征税类型代码 0：普通征税  2：差额征税—差额开票 3：差额征税—全额开票
     */
    @JsonProperty("taxInclusivePriceMark")
    private String cezslxDm;
    /**
     * 二维码版式地址
     */
    private String qrCodeLayoutAddress;
    /**
     * 内外文件地址
     */
    private FileUrlInfo fileUrlInfo;
    /**
     * 外网文件地址
     */
    private FileUrlInfoOut fileUrlInfoOut;
    /**
     * 购方基本信息
     */
    private BuyerInfo buyerInfo;

    /**
     * 销方基本信息
     */
    private SellerInfo sellerInfo;
    /**
     * 开票明细
     */
    private InvoiceProductList invoiceLines;
    /**
     * 差额开票凭证明细
     */
    private DeductionList deductionList;
    /**
     * 扣除额	16,2	否
     * 征税类型代码
     * 差额征税-全额开票：0；
     * 差额征税-差额开票：0<扣除额 <=含税金额。
     * 明细行只能是一行。
     * 1.具体差额征税发票的计算方法如下：
     * 1.1不含税差额 = 不含税金额 - 扣除额；税额 = 不含税差额*税率。
     * 扣除额不能大于不含税金额。
     */
    private String deduction;
    /**
     * 合计金额  number  18,2  是
     * aisino: taxMark含税标志   0不含税：必传；1含税：不传，自动计算
     */
    @JsonProperty("taxExclusiveTotalAmount")
    private String hjje;
    /**
     * 合计税额  number  18,2  是
     * aisino: taxMark含税标志      * 0不含税：必传；1含税：不传，自动计算
     */
    @JsonProperty("taxTotalAmount")
    private String hjse;
    /**
     * 价税合计  number  18,2  是
     */
    @JsonProperty("taxInclusiveTotalAmount")
    private String jshj;
    /**
     * 开票人  varchar  300  是
     */
    @JsonProperty("invoiceClerk")
    private String kpr;
    /**
     * 开票人证件号码  varchar  30  否
     */
    @JsonProperty("iDCardnumber")
    private String kprzjhm;
    /**
     * 开票人证件类型  varchar  4  否
     * 100：单位101：组织机构代码证102：营业执照103：税务登记证
     * 199：其他单位证件200：个人201：居民身份证202：军官证
     * 203：武警警官证204：士兵证205：军队离退休干部证206：残疾人证
     * 207：残疾军人证（1-8  级）208：外国护照209：港澳同胞回乡证
     * 210：港澳居民来往内地通行证211：台胞证212：中华人民共和国往来港澳通行证
     * 213：台湾居民来往大陆通行证214：大陆居民往来台湾通行证215：外国人居留证
     * 216：外交官证217：使（领事）馆证218：海员证219：香港永久性居民身份证
     * 220：台湾身份证221：澳门特别行政区永久性居民身份证222：外国人身份证件
     * 223：高校毕业生自主创业证224：就业失业登记证225：退休证220：离休证
     * 227：中国护照228：城镇退役士兵自谋职业证229：随军家属身份证明
     * 230：中国人民解放军军官转业证书231：中国人民解放军义务兵退出现役证
     * 232：中国人民解放军士官退出现役证233：外国人永久居留身份证（外国人永久居留证）
     * 234：就业创业证235：香港特别行政区护照9192236：澳门特别行政区护照
     * 237：中华人民共和国港澳居民居住证238：中华人民共和国台湾居民居住证
     * 239：《中华人民共和国外国人  工  作  许  可证》（A  类）
     * 240：《中华人民共和国外国人  工  作  许  可证》（B  类）
     * 241：《中华人民共和国外国人  工  作  许  可证》（C  类）
     * 291：出生医学证明299：其他个人证件
     */
    @JsonProperty("iDCardtype")
    private String kprzjlx;
    /**
     * 备注  varchar  450  否
     */
    @JsonProperty("note")
    private String bz;
    /**
     * 收款人姓名  varchar  150  否
     */
    @JsonProperty("payee")
    private String skrxm;
    /**
     * 复核人姓名  varchar  75  否
     */
    @JsonProperty("checker")
    private String fhrxm;
    /**
     * 红字确认信息单编号varchar  20  否是否蓝字发票标志为  1  时，此节点有内容红票开具时必传
     */
    @JsonProperty("infoFormNum")
    private String hzqrxxdbh;
    /**
     * 随机数	10	是
     */
    private String randomNum;
    /**
     *上传成功流水号
     */
    @JsonIgnore
    private String sclsh;
    /**
     *上传成功流水号
     */
    @JsonIgnore
    private boolean uploaded;
    /**
     * 特殊行业特定要素
     */
    private AisinoSpecificElements specificElements;
}
